/**********************************************************************************
 * 文件名称：led.c
 * 功能说明：led初始化函数
 * 作者：laud（qq：554163925）
 * 修改记录
 *
**********************************************************************************/
#include "gsm.h"
#include "gsm_power.h"


/* 静态函数 */
static void Modem_Start(void);






/*
 **********************************************************************************
 *	函 数 名: Modem_InitPWR
 *	功能说明: gsm模块power初始化
 *	形 	  参: 无 
 *	返 回 值: 无
 **********************************************************************************
 */ 
void Modem_InitPWR(void)
{    	 
	GPIO_InitTypeDef  GPIO_InitStructure;

	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

	//GPIOF9,F10初始化设置
	GPIO_InitStructure.GPIO_Pin = GSM_PWR_PIN ;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

	GPIO_Init(GSM_PWR_PORT, &GPIO_InitStructure);

	Modem_Start();
}



void GSM_ModemOpen(uint8_t id)
{
	  MDM_PostAliveTest();
}



/* 模块开机脚置高 */
static void Modem_Alive_High()
{
	GSM_PWR=0;	
	TMR_Subscribe(false,50,TMR_TYPE_100MS,(tmr_procTriggerHdlr_t)GSM_ModemOpen);
}


/* 模块软开机 */
static void Modem_Start(void)
{
	printf("\r\n.The Modem is starting ");
	GSM_PWR = 1;
	TMR_Subscribe(false,8,TMR_TYPE_100MS,(tmr_procTriggerHdlr_t)Modem_Alive_High);
}



void Modem_ShutDown(void)
{	
	printf("\r\n.LOGIN TIMEOUT...... \r\n");
	GSM_PWR=0;
}


void Modem_Normal(void)
{
//	MODEM_RESETPIN_LOW();
}


void Modem_Reset(void)
{
//	MODEM_RESETPIN_HIGH();
	
	TMR_Subscribe(false,15,TMR_TYPE_10MS,(tmr_procTriggerHdlr_t)Modem_Normal);
	
}



